package com.linsen.erp.admin.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.linsen.erp.admin.entity.UserEntity;
import com.baomidou.mybatisplus.extension.service.IService;
import com.linsen.erp.admin.provider.dto.EmployeeDTO;
import com.linsen.erp.admin.provider.dto.UserDTO;
import com.linsen.erp.admin.provider.qo.UserListQo;
import com.linsen.erp.admin.provider.qo.UserQo;
import com.linsen.erp.admin.provider.vo.UserVO;

import java.util.List;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author zhaoyong
 * @since 2023-07-24
 */
public interface IUserService extends IService<UserEntity> {
    /** 当前登录用户信息 */
    UserVO current();

    /** 修改当前登录用户信息 */
    void updateCurrent(UserDTO userDTO);

    /** Web端分页查询用户 */
    Page<UserVO> page(UserQo qo);

    /** 用户列表查询 */
    List<UserVO> list(UserListQo userListQo);

    /** Web端查询用户详情 */
    UserVO get(String id);

    /** 新增用户 */
    void saveUser(UserDTO userDTO);

    /** 修改用户 */
    void updateUser(UserDTO userDTO);

    /** 切换冻结状态 */
    void useStatus(String id);

    /** 删除用户 */
    void delete(String id);

    /** 重置密码 */
    void resetPassword(String id);

    /** 通过员工创建登录账户 */
    UserEntity createByEmployee(EmployeeDTO employeeDTO);
}
